Skip to content

fix(auto_fixer): マージ済み PR で refix:merged ラベルが付かない不具合を修正#64

Merged
HappyOnigiri merged 2 commits intomainfrom
fix/merged-label-for-merged-prs
Mar 12, 2026
Merged

fix(auto_fixer): マージ済み PR で refix:merged ラベルが付かない不具合を修正#64
HappyOnigiri merged 2 commits intomainfrom
fix/merged-label-for-merged-prs

Conversation

@HappyOnigiri
Copy link
Owner

@HappyOnigiri HappyOnigiri commented Mar 12, 2026

概要 / Summary

マージ済み PR に refix:merged ラベルが付かない不具合を修正。

変更内容 / Changes

  • _mark_pr_merged_label_if_needed から autoMergeRequest のチェックを削除
  • GitHub API は PR マージ後に autoMergeRequestnull で返すため、条件が常に偽となりラベルが付与されていなかった
  • gh pr view--json から不要になった autoMergeRequest を削除
  • テストのモックデータを実 API の挙動に合わせて更新(autoMergeRequest なし)

テスト / Testing

make ci で全テストパス済み。

関連 issues / Related issues

なし

Summary by CodeRabbit

リリースノート

  • New Features
    • プルリクエストの「自動マージ要求」を示す新しいラベルで自動マージの流れを管理するようになりました(UI/表示上のラベル振る舞いが追加)。
  • Bug Fixes
    • マージ済みラベルの付与とバックフィル処理を改善し、実際のマージ状態と整合するようになりました。
  • Tests
    • ラベリングと自動マージ挙動に関するテストを追加・更新しました。

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8fcfa97a-567c-425d-bfba-6c9b22c258f8

📥 Commits

Reviewing files that changed from the base of the PR and between e94e16b and 447970a.

📒 Files selected for processing (2)
  • src/auto_fixer.py
  • tests/test_auto_fixer.py

📝 Walkthrough

Walkthrough

新しいラベル refix:auto-merge-requested とその色定数を導入し、auto-merge のゲーティングを PR フィールドからこのラベルの有無へ切り替え。ラベル作成・付与・削除・バックフィル逻輯を更新し、対応するテストを追加/修正した。

Changes

Cohort / File(s) Summary
Auto fixer 本体
src/auto_fixer.py
新定数 REFIX_AUTO_MERGE_REQUESTED_LABEL と色定数追加。ラベル存在確保ロジックを拡張し、auto-merge の判定を autoMergeRequest フィールドから新ラベルの有無へ変更。マージトリガーで新ラベルを追加、マージラベル適用時に新ラベルを削除、バックフィル検索範囲を拡張、PR 表示の取得フィールドを mergedAt・labels のみに簡素化。
テストの更新
tests/test_auto_fixer.py
新ラベルの存在を前提とするケースを追加/修正。マージ関連テストで refix:auto-merge-requested を扱う期待値を導入し、auto-merge が要求されない場合のスキップテストを追加。gh コマンド呼び出しアサーションを柔軟化。

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Refix merged label #48:マージ済みラベル処理とバックフィル周りの変更が重複しており、ラベルワークフローの調整で強い関連がある。
  • 自動マージ機能 #44:auto-merge トリガー/ゲーティングの実装変更に関わる変更があり、同じコード経路への影響が予想される。

Suggested labels

refix:done

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed PRのタイトルは変更内容を正確に反映しており、マージ済みPRで refix:merged ラベルが付かない不具合の修正という主要な変更を明確に表現している。
Description check ✅ Passed PR説明はテンプレートの主要なセクション(概要、変更内容、テスト、関連issues)を完備しており、不具合の原因と実装の詳細が充分に記載されている。

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/merged-label-for-merged-prs

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/auto_fixer.py (1)

1306-1341: ⚠️ Potential issue | 🟠 Major

refix:merged の付与条件が広がりすぎています。

この変更後は mergedAtrefix:done だけで refix:merged を付けるため、Refix が auto-merge を要求していない PR でも、人手で merge されれば同じラベルが付きます。_ensure_refix_labels() の説明文は「PR has been merged after Refix auto-merge.」なので意味が崩れますし、_backfill_merged_labels() 経由でそれらまで改変件数に数えられるため、max_modified_prs_per_run の消費にもつながります。auto-merge を実際に要求した事実を別途保持して判定に使うか、ラベルの意味と説明をこの新しい挙動に合わせて揃える必要があります。

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/auto_fixer.py` around lines 1306 - 1341, 現在の条件は mergedAt と
REFIX_DONE_LABEL のみで REFIX_MERGED_LABEL を付与しており、人手マージされた PR
まで含んでしまうため、_ensure_refix_labels() の「auto-merge
後に付く」という説明と挙動が乖離しています。修正方法:_auto_fixer の該当ブロックが REFIX_MERGED_LABEL を付ける前に「Refix
が auto-merge を要求していたこと」を示す追加条件を必ず確認するように変更してください(例えば PR に残している auto-merge
用ラベル/フラグをチェックするか、auto-merge 要求を永続化する仕組みを導入して _pr_has_label(pr_data,
<REFIX_AUTO_MERGE_LABEL>) 又は保存した状態を確認する)。対象は関数/符号名 mergedAt, _pr_has_label,
REFIX_DONE_LABEL, REFIX_MERGED_LABEL, _ensure_refix_labels,
_backfill_merged_labels, max_modified_prs_per_run で、これらを用いて「mergedAt &
REFIX_DONE_LABEL & auto-merge-requested」が揃った場合のみ _set_pr_merged_label
を呼ぶようにしてください。
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@src/auto_fixer.py`:
- Around line 1306-1341: 現在の条件は mergedAt と REFIX_DONE_LABEL のみで
REFIX_MERGED_LABEL を付与しており、人手マージされた PR まで含んでしまうため、_ensure_refix_labels()
の「auto-merge 後に付く」という説明と挙動が乖離しています。修正方法:_auto_fixer の該当ブロックが REFIX_MERGED_LABEL
を付ける前に「Refix が auto-merge を要求していたこと」を示す追加条件を必ず確認するように変更してください(例えば PR に残している
auto-merge 用ラベル/フラグをチェックするか、auto-merge 要求を永続化する仕組みを導入して _pr_has_label(pr_data,
<REFIX_AUTO_MERGE_LABEL>) 又は保存した状態を確認する)。対象は関数/符号名 mergedAt, _pr_has_label,
REFIX_DONE_LABEL, REFIX_MERGED_LABEL, _ensure_refix_labels,
_backfill_merged_labels, max_modified_prs_per_run で、これらを用いて「mergedAt &
REFIX_DONE_LABEL & auto-merge-requested」が揃った場合のみ _set_pr_merged_label
を呼ぶようにしてください。

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4e00596f-6758-4ff3-9953-a6fb99f3b019

📥 Commits

Reviewing files that changed from the base of the PR and between 03bc3df and e94e16b.

📒 Files selected for processing (2)
  • src/auto_fixer.py
  • tests/test_auto_fixer.py

@HappyOnigiri HappyOnigiri added the refix:running Refix is currently processing review fixes. label Mar 12, 2026
_trigger_pr_auto_merge() 成功時に refix:auto-merge-requested ラベルを付与し、
_mark_pr_merged_label_if_needed() と _backfill_merged_labels() で同ラベルの
存在を確認することで、手動マージされた PR に誤って refix:merged が付く問題を修正。
@HappyOnigiri
Copy link
Owner Author

🤖 Refix Status

処理済みレビュー一覧 (System Use Only)
Comment ID 処理日時
r3933525440 2026-03-12 11:44:00 JST

@HappyOnigiri HappyOnigiri added refix:done Refix finished review checks/fixes for now. and removed refix:running Refix is currently processing review fixes. labels Mar 12, 2026
@HappyOnigiri HappyOnigiri merged commit 42ab9fe into main Mar 12, 2026
2 checks passed
@HappyOnigiri HappyOnigiri deleted the fix/merged-label-for-merged-prs branch March 12, 2026 02:47
@coderabbitai coderabbitai bot mentioned this pull request Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refix:done Refix finished review checks/fixes for now.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant